#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "user.h"
#include "stu.h"

//命令的描述
char *msgArr[]={
	"学生信息初始化",
	"学生信息添加",
	"学生信息打印",
	"学生信息删除",
	"学生信息修改",
	"学生信息查询",
	"按成绩排序",
	"退出程序"
};

int (*cmdArr[])()={
	cmd_init,
	cmd_insert,
	cmd_printAll,
	cmd_deleteByID,
	cmd_updateByID,
	cmd_selectByID,
	cmd_sortedByScore,
	cmd_exit
};//命令操作的函数指针数组

int showMenu(){
	//命令表抬头
	printf("-----------------------------------------\n");
	printf("命令编号\t命令名称\t命令描述\n");
	int cmdLen=sizeof(msgArr)/sizeof(char *);
	for(int i=0;i<cmdLen;i++){
		printf("%4d\t\t%s\n", i+1, msgArr[i]);
	}
	printf("请输入你要执行操作的[命令编号]:");
	int cmd;
	scanf("%d", &cmd);
	return cmd;
}

void callFunc(int cmd){
	//判断命令的合法性
	if(cmd <0 || cmd >= sizeof(msgArr)/sizeof(char*)){
		printf("【ERROR】输入的命令不合法，请重新输入!");
		return;
	}
	//
	int ret=cmdArr[cmd]();
	//
	printf("【命令-[%s]】执行完成，执行结果为[%d-%s]\n", msgArr[cmd],
			cmd+1,ret==1?"成功":"失败！！！");

}


int main(int argc, const char *argv[])
{
	// 登录
	User user;
	if(!login(&user)){
		printf("登录失败，即将退出系统\n");
		return -1;
	}
	printf(">>登录成功:[%s]，你好!欢迎登录学生管理系统\n", user.username);
	// 操作主菜单
	while(1){
		//显示操作菜单，并接受用户指令
		int cmd=showMenu();
		cmd-=1;//转换成数组下标
	
		//通过cmd的编号去调用相关的函数
		callFunc(cmd);
		printf("按任意键继续...\n");
		getchar();
		getchar();
	}

	return 0;
}
